<?php //ver.2011 0.1 - Eugenio Ghiglia <eugenio@blux.org> - 

// *** metodi log ***

function _annunci_error($evento) {
    global $db;
    $evento=substr($evento,0,200);
    $db->sql("INSERT INTO tbl_error_log (logtime,evento) VALUES (NOW(),'".addslashes($evento)."')");
    return true;
}

function _annunci_warning($evento) {
    global $db;
    $evento=substr($evento,0,200);
    $db->sql("INSERT INTO tbl_warning_log (logtime,evento) VALUES (NOW(),'".addslashes($evento)."')");
    return true;
}

// *** metodi generali ***

function _annunci_count($id_canale=0, $id_categoria=0) {
    global $db;
    $count=0;
    $sql="SELECT COUNT(*) as c 
          FROM tbl_annunci 
          WHERE attivo='1' AND scaduto='0'
            ".(($id_canale)?"AND id_canale='$id_canale'":"")."
            ".(($id_categoria)?"AND id_categoria='$id_categoria'":"")."
          ";
    $db->sql_arr($sql, $record, $n);
    $count=$record[0]['c'];
    return $count;
}

// *** metodi per la gestione dei canali ***

function _annunci_get_canali() {
    global $db;
    $canali=Array();
    $sql="SELECT id_canale, descrizione_canale, icona 
            FROM tbl_canali 
           WHERE pubblicazione_online='1'
              OR pubblicazione_cartacea='1'";
    $db->sql_arr($sql, $record, $n);          
    if ($n) {
        for ($i=0;$i<$n;$i++) {
		  $canali[$i]['id_canale']=$record[$i]['id_canale'];
          $canali[$i]['descrizione_canale']=$record[$i]['descrizione_canale'];
          $canali[$i]['icona']=$record[$i]['icona'];
		}
    } 
    return $canali;          
}

function _annunci_get_canali_list() {
    global $db;
    $canali='';
    $sql="SELECT id_canale, descrizione_canale, icona 
            FROM tbl_canali 
           WHERE pubblicazione_online='1'
              OR pubblicazione_cartacea='1'";
    $db->sql_arr($sql, $record, $n);          
    if ($n) {
        $sep='';
        for ($i=0;$i<$n;$i++) {
          $canali.=$sep.$record[$i]['descrizione_canale'];
          $sep=', ';
        }
    } 
    return $canali;          
}

function _annunci_get_canale($canale) {
    global $db;
    $buffer='';
    $sql="SELECT descrizione_canale FROM tbl_canali WHERE id_canale='$canale'";
    $db->sql_arr($sql, $record, $n);
    $buffer=$record[0]['descrizione_canale'];
    return $buffer;
}

function _annunci_get_categoria($categoria) {
    global $db;
    $buffer='';
    $sql="SELECT descrizione_categoria FROM tbl_categorie WHERE id_categoria='$categoria'";
    $db->sql_arr($sql, $record, $n);
    $buffer=$record[0]['descrizione_categoria'];
    return $buffer;
}

function _annunci_render_canali() {
    $buffer='';
    $canali=_annunci_get_canali();
    foreach($canali as $c) {
        $buffer.='<div class="channels_item">
                    <a href="/annunci/'.$c['id_canale'].'-'.stringtourl($c['descrizione_canale']).'/">
                    <img src="/images/icons/channels/'.$c['icona'].'" border="0" alt=""/><br/>
                    <strong>'.$c['descrizione_canale'].'</strong><br/>
                        '._annunci_count($c['id_canale']).' annunci<br/>
                    </a>
                  </div>';
    }
    return $buffer;
}

function _annunci_categorie_breadcrumb_ritroso($pid) {
    global $db;
    $buffer='';
    $sql="SELECT id_canale, id_categoria, pid_categoria, descrizione_categoria FROM tbl_categorie WHERE id_categoria='$pid'";
    $db->sql_arr($sql, $record, $n);
    if ($n) {
        $buffer='<a href="/annunci/'.$record[0]['id_canale'].'-quiqui/'.$record[0]['id_categoria'].'-'.stringtourl($record[0]['descrizione_categoria']).'/">'.$record[0]['descrizione_categoria'].'</a>';
        if ($record[0]['pid_categoria']!=0) {
            $buffer=_annunci_categorie_breadcrumb_ritroso($record[0]['pid_categoria']).' &gt; '.$buffer;
        }
    }
    return $buffer;
}

function _annunci_get_prodotti_compatibili($canale=0, $categoria=0) {
    global $db;
    $buffer='';
    $sql="SELECT DISTINCT l.id_tipo_annuncio
            FROM tbl_link as l,
                 tbl_prodotti as p
            WHERE (l.id_canale=$canale || l.id_canale=0) AND (l.id_categoria=$categoria || l.id_categoria=0)
              AND l.id_tipo_annuncio=p.id_tipo_annuncio
              AND p.abilita_prodotto='1'";
    $db->sql_arr($sql, $rs_prodotti, $n_prodotti);
    if ($n_prodotti) {
        $sep='';    
        for ($i=0;$i<$n_prodotti;$i++) {
		  $buffer.=$sep.$rs_prodotti[$i]['id_tipo_annuncio'];
          $sep=',';
		}        
    }
    return $buffer;
}

function _annunci_render_annunci($canale=0,$categoria=0,$limit=0,$paginazione=false,&$_keywords='') {
    global $db;
    $buffer='';
    $textk='';

    // recupero gli annunci compatibili // 
    $id_tipo_annuncio=_annunci_get_prodotti_compatibili($canale,$categoria);              
    
    if ($id_tipo_annuncio) {
        // *** ci sono annunci compatibili ***    
        
        //$buffer.=$id_tipo_annuncio.'  '.__FILE__.' '.__LINE__;
        
        $sql="SELECT *, DATE_FORMAT(data_pubblicazione_online,'%d/%m/%Y') as pubblicazione 
                FROM tbl_annunci 
              WHERE attivo='1'
                AND scaduto='0'
                AND id_tipo_annuncio IN ($id_tipo_annuncio)
                ".(($canale)?"AND id_canale='$canale'":"")."
                ".(($categoria)?"AND id_categoria='$categoria'":"")."
              ORDER BY data_pubblicazione_online DESC
              ".(($limit)?"LIMIT $limit":"")."";
        
        
        
        $db->sql_arr($sql, $record, $n);
        
        $start=0;
        $ipp=15;  // qui imposta quanti annunci per pagina devono essere visualizzati!!!
        
        if ($n) {
            
            if ($paginazione) {
                $pagina=(int)$_GET['?p'];
                if (!$pagina) $pagina=1;
                $pagine=ceil($n/$ipp);
                if ($pagina>$pagine) $pagina=$pagine;
                $start=($ipp*$pagina)-$ipp;
                if (($start+$ipp)<$n) $n=$start+$ipp;
                if ($pagine>1) $buffer.='<p>pagina '.$pagina.' di '.$pagine.'</p>';
            }
                  
            // *** pubblico l'annuncio ***
            
            if ($_SESSION['CONFIG']['CODE_100']) {
                $buffer.='<div class="box_annuncio box_annuncio_sfondo'.(round($start+1%2,0)).'">
                            '.$_SESSION['CONFIG']['CODE_100'].'
                          </div>';
            }
            
            for ($i=$start;$i<$n;$i++) {
			     $buffer.='<div class="box_annuncio box_annuncio_sfondo'.(round($i%2,0)).'">
                            <div style="float:left;width:50%">
                                <span style="float:left;font-weight:bold;">pubblicato il '.$record[$i]['pubblicazione'].'</span><br/>
                                <span class="button_reply" style="float:left;margin-top:5px;"><a href="/annunci.html?view='.$record[$i]['id_annuncio'].'" rel="nofollow">rispondi all\'annuncio</a></span>
                            </div>
                            <div style="float:right;text-align:center;">
                                <div style="margin-bottom:5px;"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://'.$_SERVER['SERVER_NAME'].'/annunci.html?view='.$record[$i]['id_annuncio'].'" data-text="'.substr(strip_tags($record[$i]['descrizione']),0,40).'[...] '.(($categoria)?'#'._annunci_get_categoria($categoria):'').' #'._annunci_get_canale($canale).'" data-count="vertical" data-lang="it">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
                                <div><a name="fb_share" name="fb_share"name="fb_share" type="box_count" share_url="http://'.$_SERVER['SERVER_NAME'].'/annunci.html?view='.$record[$i]['id_annuncio'].'">Share</a><script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script></div>                                
                            </div><div style="clear:both;"></div>';
                 
                 // *** immagine ***
                 if ($record[$i]['immagine']) {
                    list($w,$h)=explode('x',$record[$i]['dimensioni_immagine']);
                    $w=(int)$w;
                    $h=(int)$h;
                    if (!$w) $w=400;
                    if (!$h) $h=300;
                    $buffer.='<div class="box_annuncio_immagine"><img src="/ajax/imgloader.php?id='.$record[$i]['id_annuncio'].'" alt="" width="'.$w.'" height="'.$h.'"/></div>';
                 }
                         
                 // *** descrizione ***   
                 if ($record[$i]['descrizione']) {
                    $testo=htmlspecialchars($record[$i]['descrizione']);
                    $testo=str_replace('[b]','<strong>',$testo);
                    $testo=str_replace('[/b]','</strong>',$testo);
                    $testo=str_replace('[u]','<u>',$testo);
                    $testo=str_replace('[/u]','</u>',$testo);
                    $testo=convertilink($testo);
                    $buffer.='<div class="box_annuncio_descrizione">'.$testo.'</strong></u></div>';
                    $textk.=' '.strip_tags($testo);
                 }
          
                 // *** fotogallery ***
                 if ($record[$i]['id_gallery']) {
                    $sql="SELECT foto FROM tbl_gallery WHERE id_gallery='".$record[$i]['id_gallery']."'";
                    $db->sql_arr($sql, $rs_gallery, $n_gallery);
                    if ($n_gallery) {
                        
                        $h_default=100;
                        
                        $buffer.='
                                <script type="text/javascript"> 
                                    // Initialize the plugin with no custom options
                                    $(function() {
                                        $("div#makeMeScrollable'.$i.'").smoothDivScroll({autoScroll: "onstart", autoScrollDirection: "backandforth", autoScrollStep: 1, autoScrollInterval: 15, visibleHotSpots: "always"});
                                    });
                                </script> 
                                <div id="makeMeScrollable'.$i.'" style="width:616px;height:'.$h_default.'px;position:relative;border:4px solid #FFFFFF;background-color:#BEBEBE"> 
                                    <div class="scrollingHotSpotLeft"></div> 
                                    <div class="scrollingHotSpotRight"></div> 
                                    <div class="scrollWrapper"> 
                                        <div class="scrollableArea">';
                            for ($g=0;$g<$n_gallery;$g++) {
                                list($width, $height, $type, $attr)=getimagesize('gallery/'.$rs_gallery[$g]['foto']);
                                // *** rielaborazione delle dimensioni ***
                                $w_default=round($width/$height*$h_default,0);
							    $buffer.='<img src="/gallery/'.$rs_gallery[$g]['foto'].'" alt="" width="'.$w_default.'" height="'.$h_default.'" />';
							}                
                         $buffer.='                   
                                        </div> 
                                    </div> 
                                </div>';
                    }
                 }
                 
                 
                 // *** descrizioni aggiuntive ***
                 if ($record[$i]['descrizioni_aggiuntive']) {
                    $campi=unserialize($record[$i]['descrizioni_aggiuntive']);
                    $buffer.='<div class="box_annuncio_descrizioniextra"><table border="0" cellpadding="4" cellspacing="0">';
                    foreach($campi as $k => $v) {
                        $buffer.='<tr><td>'.htmlspecialchars(utf8_encode($k)).':</td><td>'.htmlspecialchars(utf8_encode($v)).'</td></tr>';
                    }   
                    $buffer.='</table></div>';
                 }
                 
                 $buffer.='
                    <div style="clear:both;"></div>
                    </div>';
			}
            // *** fine della pubblicazione dell'annuncio
            
            // *** paginazione ***
            if ($paginazione && $pagine>1) {
                $buffer.='<div class="box_paginazione">';
                for($i=1;$i<=$pagine;$i++) $buffer.='<span'.(($pagina==$i)?' id="box_paginazione_pagina"':'').'><a href="?p='.$i.'" title="vai a pagina '.$i.'">&nbsp;'.$i.'&nbsp;</a></span>';
                $buffer.='</div>';
            }
            
            
        } else {
            // *** non ci sono annunci compatibili per il canale/categoria proposto ***
            $buffer.='<div class="box_annuncio">
                        Nessun annuncio pubblicato!
                      </div>';
                      
            if ($_SESSION['CONFIG']['CODE_200']) {
                $buffer.='<div id="box_code200">'.$_SESSION['CONFIG']['CODE_200'].'</div>';
            }            
        }
    
    } else {
        // *** non ci sono annunci compatibili per il canale/categoria proposto ***
        $buffer.='<div class="box_annuncio">
                    Nessun annuncio pubblicato!
                  </div>';  
    }

    $key=new autokeyword($textk);
    $key->wordOccuredMin = 2;
    $_keywords=$key->get_keywords();
    if (!$_keywords) {
        $key->wordOccuredMin = 1;
    $_keywords=$key->get_keywords();
    } 
   

    return $buffer;
}

function _annunci_render_formannuncio($id_tipo_annuncio) {
    global $db;
    $buffer='';
    
    $sql="SELECT * FROM tbl_prodotti WHERE id_tipo_annuncio='$id_tipo_annuncio'";
    $db->sql_arr($sql, $record, $n);
    if ($n) {
        
        
        // *** testo descrittivo ***
        if ($record[0]['abilita_testo_descrittivo']==1) {
            $buffer.='<div class="form_annuncio_item">
                        Scrivi qui il testo dell\'annuncio (massimo '.$record[0]['numero_max_caratteri'].' caratteri)<br/>
                        <textarea class="validate[required]" name="testo_descrittivo" style="margin-top:4px;width:80%;height:100px;" onkeyup="caratteri(this.value, \'leftcar\')" id="testo_leftcar">'.htmlspecialchars($_POST['testo_descrittivo']).'</textarea>
                        <div style="float:right;width:16%;text-align:left;margin-top:6px;font-size:0.8em;">puoi scrivere ancora <span style="font-weight:bold;" id="leftcar">'.$record[0]['numero_max_caratteri'].'</span> caratteri</div>
                        <p>nel testo puoi utilizzare i seguenti codici: [b]<b>grassetto</b>[/b] [u]<u>sottolineato</u>[/u]<br/>
                           mentre i link se iniziano con "http://" verranno riconosciuti automaticamente</p>
                        <script>
                            function caratteri(car, id) {
                                var ncar;
                                var x;
                                ncar='.$record[0]['numero_max_caratteri'].';

                                x=ncar-car.length;
                                if (x>0) { 
                                    document.getElementById(id).innerHTML=x;
                                } else {
                                    document.getElementById(id).innerHTML=0;
                                    document.getElementById(\'testo_\'+id).value=car.substring(0,ncar);
                                }
                            }
                         </script>
                      </div>';
        }
        
        
        // *** immagine ***
        if ($record[0]['abilita_immagine']==1) {
                
                $imgtarget=md5(date('U'));
            
            $buffer.='<div class="form_annuncio_item">
                        <script type="text/javascript">
                        $(document).ready(function() {
                          $(\'#file_upload_immagine\').uploadify({
                            \'uploader\'  : \'/ajax/uploadify.swf\',
                            \'script\'    : \'/ajax/uploadify.php?target='.$imgtarget.'\',
                            \'cancelImg\' : \'/images/cancel.png\',
                            \'folder\'    : \'/uploads\',
                            \'auto\'      : true,
                            \'fileExt\'   : \'*.jpg;*.png\',
                            \'fileDesc\'  : \'Image Files\',
                            \'buttonText\'  : \'Seleziona il file\',
                            \'removeCompleted\' : false,
                            \'sizeLimit\'   : 204800,
                            \'onComplete\'  : function(event, ID, fileObj, response, data) {
                                  document.getElementById(\'immagine_response\').value=response;
                                  document.getElementById(\'infotextimmagine\').innerHTML=\'\';
                                }
                          });
                        });
                        </script>
                        Carica un\'immagine, dimensioni di pubblicazione '.$record[0]['dimensioni_immagine'].'px, formati accettati .jpg e .png
                        <div style="padding-top:5px;padding-bottom:5px;"><input id="file_upload_immagine" name="file_upload" type="file"/></div> 
                        <span style="font-size:0.8em;">(dimensione massima del file 200KB)</span>                        
                        <input type="hidden" name="immagine_caricata" value="'.$_POST['immagine_caricata'].'" id="immagine_response"/>
                        <span id="infotextimmagine">'.(($_POST['immagine_caricata'])?'<br/><br/>Verr&agrave; utilizzata l\'immagine <b>'.substr(str_replace('/uploads/','',$_POST['immagine_caricata']),33).'</b>, per cambiare immagine carica un altro file':'').'</span> 
                      </div>';
        }
        
        // *** foto gallery ***
        if ($record[0]['abilita_fotogallery'] && $record[0]['abilita_pubblicazione_online']) {
            
            $imgtarget=md5(date('U').'gallery').'_'.date('Ymd');
            
            $buffer.='<div class="form_annuncio_item">
                        <script type="text/javascript">
                            index_g='.(int)$_POST['index_g'].';
                        $(document).ready(function() {
                          $(\'#file_upload_gallery\').uploadify({
                            \'uploader\'  : \'/ajax/uploadify.swf\',
                            \'script\'    : \'/ajax/uploadify.php?target='.$imgtarget.'\',
                            \'cancelImg\' : \'/images/cancel.png\',
                            \'folder\'    : \'/uploads\',
                            \'auto\'      : true,
                            \'fileExt\'   : \'*.jpg;*.png\',
                            \'fileDesc\'  : \'Image Files\',
                            \'buttonText\'  : \'Seleziona i file\',
                            \'multi\'       : true,
                            \'sizeLimit\'   : 204800,
                            \'queueSizeLimit\' : '.$record[0]['numero_max_foto'].',
                            \'onComplete\'  : function(event, ID, fileObj, response, data) {
                                  //alert(index_g);
                                  document.getElementById(\'immagine_response_gallery_\'+index_g).value=response;
                                  document.getElementById(\'imggal\'+index_g).innerHTML=response.substring(51);
                                  document.getElementById(\'galcb\'+index_g).innerHTML=\'<input type="checkbox" value="1" title="immagine da caricare nella fotogallery" name="carica_imggal_\'+index_g+\'" checked>\';  
                                  index_g++;
                                  if (index_g>='.$record[0]['numero_max_foto'].') index_g=0;
                                  document.getElementById(\'index_g\').value=index_g;
                                }
                          });
                        });
                        </script>
                        Puoi caricare fino a '.$record[0]['numero_max_foto'].' immagini che verranno visualizzate nella fotogallery
                        <div style="padding-top:5px;padding-bottom:5px;"><input id="file_upload_gallery" name="file_upload" type="file"/></div>
                        <span style="font-size:0.8em;">(dimensione massima del file 200KB, formati consentiti .jpg .png)</span>
                        <div style="text-align:left;">';     
               for ($i=0;$i<$record[0]['numero_max_foto'];$i++) {
                    if (!$_POST['carica_imggal_'.$i]) {
                        $_POST['immagine_gallery_'.$i]='';
                        $_POST['index_g']=$i;
                    }
                    $buffer.='<span id="galcb'.$i.'"><input type="checkbox" value="1" title="immagine da caricare nella fotogallery" name="carica_imggal_'.$i.'" '.(($_POST['immagine_gallery_'.$i])?'checked':'').'/></span> '.($i+1).') <span id="imggal'.$i.'" style="font-weight:bold;">'.substr($_POST['immagine_gallery_'.$i],42).'</span>
                             <input type="hidden" name="immagine_gallery_'.$i.'" value="'.$_POST['immagine_gallery_'.$i].'" id="immagine_response_gallery_'.$i.'"/><br/>';
                    			
			    }
            $buffer.='
                        <input type="hidden" name="index_g" id="index_g" value="'.(int)$_POST['index_g'].'"/>
                      </div><br/>
                        <p><b>Attenzione:</b> le immagini che effettivamente verranno caricate devono essere "segnate" con la "V" nel quadratino!</p>
                      </div>';
        }
        
        // *** campi descrittivi ***
        if ($record[0]['campi_descrittivi']) {
                $campi=explode(',',$record[0]['campi_descrittivi']);
                
                $buffer.='<div class="form_annuncio_item">
                          <p>Aggiungi qui maggiori informazioni al tuo annuncio</p>
                          <table border="0" cellpadding="5" cellspacing="0">';
                             
                foreach($campi as $v) {
                    list($campo, $max_car, $richiesto)=explode(':',$v);
                    $buffer.='<tr><td>'.htmlentities($campo).'</td><td><input type="text" name="cd_'.md5($campo).'" value="'.$_POST['cd_'.md5($campo)].'" maxlength="'.(int)$max_car.'" '.(($max_car<=6)?'style="width:'.(14*$max_car).'px;"':'').' '.(($richiesto)?'class="validate[required]"':'').' id="cd_'.md5($campo).'"/></td></tr>';
                }
        
            
                $buffer.='</table>
                          </div>';
            }
            
        // *** pubblicazione su edizione cartacea ***
        
        
    }
    return $buffer;
}

function _annunci_valida_annuncio($variabili) {
    global $db;
    $valido=true;
    $sql="SELECT * FROM tbl_prodotti WHERE id_tipo_annuncio='".$variabili['id_tipo_annuncio']."'";
    $db->sql_arr($sql, $record, $n);
    if ($n) {
            if ($record[0]['abilita_testo_descrittivo']==1) {
                if (!trim($variabili['testo_descrittivo'])) $valido=false;
            }

            if ($record[0]['campi_descrittivi']) {
                $campi=explode(',',$record[0]['campi_descrittivi']);             
                foreach($campi as $v) {
                    list($campo, $max_car, $richiesto)=explode(':',$v);
                    if ($richiesto && !trim($variabili['cd_'.md5($campo)])) $valido=false;
                }
            }
    
    } else {
        $valido=false;
    }
    return $valido;
}

function _annunci_crea_annuncio($variabili, $id_utente) {
    global $db;
    $id_annuncio=0;
    
    if (!$id_utente) return false;
    
    $id_tipo_annuncio=(int)$variabili['id_tipo_annuncio'];
    $sql="SELECT * FROM tbl_prodotti WHERE id_tipo_annuncio='".$variabili['id_tipo_annuncio']."'";
    $db->sql_arr($sql, $record, $n);
    if ($n) {
        
        
        // *** elaboro prima la foto gallery ***
        if ($record[0]['abilita_fotogallery']==1) {
            $id_gallery=_gallery_getnewid();
            // ** carico le foto **
            for ($i=0;$i<$record[0]['numero_max_foto'];$i++) {
			     if ($variabili['carica_imggal_'.$i]) {
                    _gallery_carica_immagine($id_gallery, $variabili['immagine_gallery_'.$i]);
                 }
			}
        } else {
            $id_gallery=0;
        }
        
        
        // *** elaboro  l'immagine ***
        if ($variabili['immagine_caricata']) {
            $immagine['b64']=base64_encode(file_get_contents(substr($variabili['immagine_caricata'],1)));
            $ext=explode('.',$variabili['immagine_caricata']);
            $immagine['type']=strtolower($ext[count($ext)-1]);
            $immagine_caricata=serialize($immagine);
            unlink(substr($variabili['immagine_caricata'],1));
        } else {
            $immagine_caricata='';
        }
        
        // *** elaboro le descrizioni aggiuntive ***
        if ($record[0]['campi_descrittivi']) {
                $descrizioni=Array();
                $campi=explode(',',$record[0]['campi_descrittivi']);             
                foreach($campi as $v) {
                    list($campo, $max_car, $richiesto)=explode(':',$v);
                    if ($variabili['cd_'.md5($campo)]) {
                        $descrizioni[$campo]=$variabili['cd_'.md5($campo)];
                    }
                }    
                $descrizioni_aggiuntive=serialize($descrizioni);   
        } else {
            $descrizioni_aggiuntive='';
        }
        
        if ($record[0]['costo']>0) {$da_pagare=1;} else {$da_pagare=0;}
        
        // *** elaboro il record dell'annuncio ***
        $sql="INSERT INTO tbl_annunci (
                    id_tipo_annuncio,
                    id_canale,
                    id_categoria,
                    id_utente,
                    durata_gg,
                    immagine,
                    dimensioni_immagine,
                    descrizione,
                    descrizioni_aggiuntive,
                    data_pubblicazione_online,
                    attivo,
                    scaduto,
                    data_attivazione,
                    data_inserimento,
                    id_gallery,
                    da_pagare,
                    pagato,
                    costo,
                    id_transazione,
                    ip_ref
                ) VALUES (
                    '$id_tipo_annuncio',
                    '".(int)$variabili['canale']."',
                    '".(int)$variabili['categoria']."',
                    '$id_utente',
                    '".$record[0]['durata_online']."',
                    '$immagine_caricata',
                    '".$record[0]['dimensioni_immagine']."',
                    '".addslashes($variabili['testo_descrittivo'])."',
                    '".addslashes($descrizioni_aggiuntive)."',
                    '0000-00-00 00:00:00',
                    '0',
                    '0',
                    '0000-00-00',
                    NOW(),
                    '$id_gallery',
                    '$da_pagare',
                    '0',
                    '".(float)$record[0]['costo']."',
                    '',
                    '".$_SERVER['REMOTE_ADDR']."'
                )";
                
         $db->sql($sql);
         $id_annuncio=$db->lastid;       
         
    }
    
    return $id_annuncio;
}


function _annunci_render_annuncio($id, &$_title='', &$_keywords='', &$_description='') {
    global $db;
    $buffer='';
    $id=(int)$id;
    
    $_title='Annuncio '.$id;
    $buffer.='<h2><a href="http://'.$_SERVER['SERVER_NAME'].'/annunci.html?view='.$id.'">Annuncio '.$id;
    
    $sql="SELECT *, DATE_FORMAT(data_pubblicazione_online,'%d/%m/%Y') as datapubblicazione 
            FROM tbl_annunci 
           WHERE id_annuncio='$id'
            AND attivo='1' AND scaduto='0'";
    $db->sql_arr($sql, $record, $n);
    
    if ($n) {
        $_title.=' del '.$record[0]['datapubblicazione'];
        $buffer.=', pubblicato il '.$record[0]['datapubblicazione'].'</a></h2>';
        
        // *** immagine ***
         if ($record[0]['immagine']) {
            list($w,$h)=explode('x',$record[0]['dimensioni_immagine']);
            $w=(int)$w;
            $h=(int)$h;
            if (!$w) $w=400;
            if (!$h) $h=300;
            $buffer.='<p><img src="/ajax/imgloader.php?id='.$record[0]['id_annuncio'].'" alt="" width="'.$w.'" height="'.$h.'"/></p>';
        }
        
        // *** descrizione dell'annuncio ***
        if ($record[0]['descrizione']) {
            $testo=htmlspecialchars($record[0]['descrizione']);
            $testo=str_replace('[b]','<strong>',$testo);
            $testo=str_replace('[/b]','</strong>',$testo);
            $testo=str_replace('[u]','<u>',$testo);
            $testo=str_replace('[/u]','</u>',$testo);
            $testo2=$testo;
            $testo=convertilink($testo);
            $buffer.='<p>'.$testo.'</strong></u></p>';
            $_description=str_replace("\n"," ", str_replace('"',' ',strip_tags($record[0]['descrizione'])).' - '.$_title);
            $key=new autokeyword($record[0]['descrizione']);
            $_keywords='annuncio, annunci, '.$key->get_keywords();
            $_title=html_truncw($testo2, 10);
            
         }
        
        // *** fotogallery ***
         if ($record[0]['id_gallery']) {
            $sql="SELECT foto FROM tbl_gallery WHERE id_gallery='".$record[0]['id_gallery']."'";
            $db->sql_arr($sql, $rs_gallery, $n_gallery);
            if ($n_gallery) {                
                $h_default=100;
                $buffer.='
                        <script type="text/javascript"> 
                            // Initialize the plugin with no custom options
                            $(function() {
                                $("div#makeMeScrollable").smoothDivScroll({autoScroll: "onstart", autoScrollDirection: "backandforth", autoScrollStep: 1, autoScrollInterval: 15, visibleHotSpots: "always"});
                            });
                        </script> 
                        <div id="makeMeScrollable" style="width:616px;height:'.$h_default.'px;position:relative;border:4px solid #FFFFFF;background-color:#BEBEBE"> 
                            <div class="scrollingHotSpotLeft"></div> 
                            <div class="scrollingHotSpotRight"></div> 
                            <div class="scrollWrapper"> 
                                <div class="scrollableArea">';
                    for ($g=0;$g<$n_gallery;$g++) {
                        list($width, $height, $type, $attr)=getimagesize('gallery/'.$rs_gallery[$g]['foto']);
                        // *** rielaborazione delle dimensioni ***
                        $w_default=round($width/$height*$h_default,0);
                        $buffer.='<a href="/gallery/'.$rs_gallery[$g]['foto'].'" alt="" rel="colorbox"><img src="/gallery/'.$rs_gallery[$g]['foto'].'" alt="" width="'.$w_default.'" height="'.$h_default.'" /></a>';
                    }                
                 $buffer.='                   
                                </div> 
                            </div> 
                        </div>';
            }
         }
                 
                 
         // *** descrizioni aggiuntive ***
         if ($record[0]['descrizioni_aggiuntive']) {
            $campi=unserialize($record[0]['descrizioni_aggiuntive']);
            $buffer.='<div class="box_annuncio_descrizioniextra"><table border="0" cellpadding="4" cellspacing="0">';
            foreach($campi as $k => $v) {
                $buffer.='<tr><td>'.htmlspecialchars(utf8_encode($k)).':</td><td>'.htmlspecialchars(utf8_encode($v)).'</td></tr>';
            }   
            $buffer.='</table></div>';
         }
        
        
        // *** qui il box per il reply ***
        $inviato=false;
        if ($_POST['send']) {
            if ($_POST['antispam']==$_SESSION['antispam'] && ismail($_POST['email'])) {
                   
                   
                   $subject='['.$_SERVER['SERVER_NAME'].'] richiesta per annuncio '.$id;
                   $messaggio=$_POST['messaggio'];
                   
                   if ($record[0]['descrizione']) {
                       $messaggio.="\n\n *** richiesta per l'annuncio $id ***\n";
                       $messaggio.=$record[0]['descrizione'];
                   }
                   
                   $sql="SELECT email FROM tbl_utenti WHERE id_utente='".$record[0]['id_utente']."'";
                   $db->sql_arr($sql, $rs_mail, $n_mail);
                  
                  
                   mailto($rs_mail[0]['email'],$subject,$messaggio,strtolower($_POST['email']));

                   //memorizza la richiesta nel db
                   $sql="INSERT INTO tbl_richieste VALUES (
                            '$id',
                            NOW(),
                            '".$_SERVER['REMOTE_ADDR']."',
                            '".$rs_mail[0]['email']."',
                            '".addslashes($messaggio)."'
                         )";
                   $db->sql($sql);
                            
                   $buffer.='<div class="box_reply">
                                <h3>Il tuo messaggio &egrave; stato inviato</h3>
                                <p>&Egrave; stata inviata una mail con il tuo messaggio all\'autore dell\'annuncio. <br/>
                                   Grazie per aver utilizzato questo servizio.</p>
                             </div>';
                             
                             
        
                   $inviato=true;
                   $_SESSION['antispam']='';
                   $_POST['email']='';
                   $_POST['messaggio']='';
            } 
        } 
        
        if (!$inviato) {
            
            if (!$_POST['email'] && $_SESSION['LOGGED']) $_POST['email']=_utenti_get_mail($_SESSION['LOGGED']);
            
            $buffer.='<div class="box_reply">
                        <h3>Rispondi all\'annuncio</h3>
                        <form action="" method="post" id="formID" class="formGen">
                            <table cellpadding="4" cellpsacing="0" border="0" width="100%">
                                <tr>
                                    <td>la tua email</td>
                                    <td><input type="text" class="validate[required,custom[email]]" name="email" id="email" value="'.$_POST['email'].'"/></td>
                                </tr>
                                <tr>
                                    <td>messaggio</td>
                                    <td><textarea name="messaggio" class="validate[required]" id="messaggio" style="width:80%;height:70px;">'.$_POST['messaggio'].'</textarea></td>
                                </tr>
                            </table><br/>
                            Per verificare che sei un essere umano, ed evitare inutile <a href="http://it.wikipedia.org/wiki/Spam" rel="external" target="_blank">SPAM</a>, scrivi il risultato (in cifre) della seguente operazione:
                            <b>'.antispam().'</b> = <input type="text" class="validate[required,custom[integer]]" size="3" name="antispam" id="antispam" style="width:50px;text-align:center;" value="?" onclick="this.value=\'\';" />    
                            <br/><br/>
                            <input type="submit" value="invia la richiesta"/><br/>
                            <input type="hidden" name="send" value="1"/>
                            <p class="box_reply_info">Inviando la richiesta confermi di aver letto la <a href="/privacy.html">policy sulla privacy</a> e dai il consenso al trattamento dei dati personali ai sensi dell\'art. 13 del d.lgs. n. 196/2003. All\'autore dell\'annuncio verr&agrave; comunicato il tuo indirizzo in modo tale che possa mettersi direttamente in contatto con te.</p>
                        </form>

                        <script>
                        $(document).ready(function(){
                            $("#formID").validationEngine();
                           });
                        </script>
                      </div>';
        }
        
        
    } else {
        
        $buffer.='</a></h2>';
        
        $buffer.='<p>Questo annuncio non &egrave; pi&ugrave; presente nel portale (scaduto o rimosso).</p>';
        
        $sql="SELECT id_canale FROM tbl_annunci WHERE id_annuncio='$id'";
        $db->sql_arr($sql, $record, $n);
        if ($n) {
            $buffer.='<p>Ti potrebbero interessare altri annunci...</p>';
            $buffer.=_annunci_render_annunci($record[0]['id_canale'],0,5,false,$_keywords);
        }
    }
    
    return $buffer;
}

function _annunci_tag_cloud() {
    global $db;
    global $_SESSION;
    $buffer="<tags>";

    //  <a href='#' >due</a>
    
    $sql="SELECT * FROM (SELECT count(*)+5 as peso, c.id_canale, d.id_categoria, c.descrizione_canale, d.descrizione_categoria
            FROM tbl_annunci a LEFT JOIN tbl_canali c ON a.id_canale=c.id_canale
            LEFT JOIN tbl_categorie d ON a.id_categoria=d.id_categoria
            group by id_canale, id_categoria
            order by count(*) DESC
            LIMIT 30) as T
          ORDER BY RAND()";
    $db->sql_arr($sql, $record, $n);
    for ($i=0;$i<$n;$i++) {
	   
       $link=$record[$i]['id_canale'].'-'.stringtourl($record[$i]['descrizione_canale']).'/';
       $testo=$record[$i]['descrizione_canale'];
       
       if ($record[$i]['id_categoria']) {
            $link.=$record[$i]['id_categoria'].'-'.stringtourl($record[$i]['descrizione_categoria']).'/';
            $testo=$record[$i]['descrizione_categoria'].' ('.$testo.')';
       }
       
       $buffer.=" <a href='http://".$_SERVER['SERVER_NAME'].'/'.strtolower($_SESSION['CONFIG']['KEYWORD']).'/'.$link."' style='".$record[$i]['peso']."' color='0x76476B' hicolor='0x76476B'>".$testo."</a>";
       
	}
    $buffer.="</tags>";
    return $buffer;
}

function _annunci_box_recenti($limit=10) {
    global $db;
    $buffer='';
    $sql="SELECT a.id_annuncio, a.descrizione, DATE_FORMAT(a.data_pubblicazione_online,'%d/%m/%Y') as pubblicazione, c.descrizione_canale
            FROM tbl_annunci a LEFT JOIN tbl_canali c ON a.id_canale=c.id_canale
            WHERE a.descrizione<>''
              AND a.attivo='1'
              AND a.scaduto='0'
            ORDER by a.data_pubblicazione_online DESC
            LIMIT $limit";
    $db->sql_arr($sql, $record, $n);
    for ($i=0;$i<$n;$i++) {
       $testo=$record[$i]['descrizione'];
       $testo=str_replace('[b]','',$testo);
       $testo=str_replace('[/b]','',$testo);
       $testo=str_replace('[u]','',$testo);
       $testo=str_replace('[/u]','',$testo);
       $testo=strip_tags($testo);
	   $buffer.='<div>'.$record[$i]['pubblicazione'].' <strong>'.$record[$i]['descrizione_canale'].'</strong><br/><a href="http://'.$_SERVER['SERVER_NAME'].'/annunci.html?view='.$record[$i]['id_annuncio'].'">'.htmlspecialchars(substr($testo,0,200)).'...</a></div>';
	}        
    return $buffer;
}
?>
